1. Technical Field
This disclosure relates to processors, and more particularly to increasing instruction level parallelism for vector instructions.
2. Description of the Related Art
Processor performance can be increased by increasing the degree to which computational work can be performed concurrently. Performing multiple distinct computational tasks in parallel may not result in either task finishing more quickly—in fact, under some circumstances, the design considerations necessary to support concurrency may decrease the performance of individual tasks relative to their best-case performance. But even despite a possible performance penalty for individual tasks, concurrent processing of multiple tasks may increase the aggregate amount of processing work done per cycle, thus improving overall computational performance.
Vector processing represents one approach to increasing concurrency. Generally speaking, vector instructions may operate on multiple distinct data elements at the same time. Thus, for example, a processor executing a vector ADD instruction on vectors of elements may effectively perform a number of independent addition operations concurrently. However, if the data elements to be processed do not require the full complement of execution resources implemented by a processor, the excess resources may be underutilized, and thus effectively wasted.